package com.zp.elasticsearch.config;
import com.zp.elasticsearch.vo.ElasticEntity;
import com.zp.elasticsearch.vo.ExampleEntity;
import org.elasticsearch.index.query.QueryBuilder;

import java.util.List;

/**
 * @author 张祯
 */
public interface ElasticSearchClient {

    /**
     * 构建索引
     *
     * @param entity 文档实体对象
     */
    void save(ElasticEntity entity);

    /**
     * 通过id查询文档对象
     *
     * @param id 文档id
     * @return 文档对象
     */
    ElasticEntity findById(String id);

    /**
     * 全文检索
     *
     * @param queryBuilder 查询构造器
     * @return 文档集合
     */
    List<ExampleEntity> search(QueryBuilder queryBuilder);


    /**
     * 通过id删除索引
     * @param id 文档id
     */
    Object delById(String id);

}